﻿using System.Threading;

namespace Entidades.Models
{
    public class ParametroImportacionInfo
    {
        #region Constructores

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public ParametroImportacionInfo()
        {
        }

        /// <summary>
        /// Construye un objeto ParametroImportacionInfo a partir de un ParametroImportacion
        /// </summary>
        public ParametroImportacionInfo(ParametroImportacion parametroImportacion)
        {
            this.Id = parametroImportacion.Id;
            this.IdEstudio = parametroImportacion.Estudio.Id;

            this.AnotacionActor = parametroImportacion.AnotacionActor;
            this.AnotacionDirector = parametroImportacion.AnotacionDirector;
            this.AnotacionTimeCodeResetHora = parametroImportacion.AnotacionTimeCodeResetHora;
            this.ColumnaClave = parametroImportacion.ColumnaClave;
            this.ColumnaDuracion = parametroImportacion.ColumnaDuracion;
            this.ColumnaEpisodio = parametroImportacion.ColumnaEpisodio;
            this.ColumnaProyecto = parametroImportacion.ColumnaProyecto;
            this.ColumnaTituloOriginal = parametroImportacion.ColumnaTituloOriginal;
            this.ColumnaTituloTraducido = parametroImportacion.ColumnaTituloTraducido;
            this.ColumnaTraductor = parametroImportacion.ColumnaTraductor;
            this.FilaClave = parametroImportacion.FilaClave;
            this.FilaDuracion = parametroImportacion.FilaDuracion;
            this.FilaEpisodio = parametroImportacion.FilaEpisodio;
            this.FilaProyecto = parametroImportacion.FilaProyecto;
            this.FilaTituloOriginal = parametroImportacion.FilaTituloOriginal;
            this.FilaTituloTraducido = parametroImportacion.FilaTituloTraducido;
            this.FilaTraductor = parametroImportacion.FilaTraductor;
            this.HabilitadoAnotacionActor = parametroImportacion.HabilitadoAnotacionActor;
            this.HabilitadoAnotacionDirector = parametroImportacion.HabilitadoAnotacionDirector;
            this.HabilitadoAnotacionTimeCodeResetHora = parametroImportacion.HabilitadoAnotacionTimeCodeResetHora;
            this.HabilitadoClave = parametroImportacion.HabilitadoClave;
            this.HabilitadoDuracion = parametroImportacion.HabilitadoDuracion;
            this.HabilitadoEpisodio = parametroImportacion.HabilitadoEpisodio;
            this.HabilitadoLoopsPorPalabras = parametroImportacion.HabilitadoLoopsPorPalabras;
            this.HabilitadoLoopsPorSegundos = parametroImportacion.HabilitadoLoopsPorSegundos;
            this.HabilitadoProyecto = parametroImportacion.HabilitadoProyecto;
            this.HabilitadoTituloOriginal = parametroImportacion.HabilitadoTituloOriginal;
            this.HabilitadoTituloTraducido = parametroImportacion.HabilitadoTituloTraducido;
            this.HabilitadoTraductor = parametroImportacion.HabilitadoTraductor;
            this.PalabrasPorLoop = parametroImportacion.PalabrasPorLoop;
            this.SegundosPorLoop = parametroImportacion.SegundosPorLoop;
            this.TablaClave = parametroImportacion.TablaClave;
            this.TablaDuracion = parametroImportacion.TablaDuracion;
            this.TablaEpisodio = parametroImportacion.TablaEpisodio;
            this.TablaProyecto = parametroImportacion.TablaProyecto;
            this.TablaTituloOriginal = parametroImportacion.TablaTituloOriginal;
            this.TablaTituloTraducido = parametroImportacion.TablaTituloTraducido;
            this.TablaTraductor = parametroImportacion.TablaTraductor;
            this.ValidacionFilaVacia = parametroImportacion.ValidacionFilaVacia;
            this.ValidacionTimeCodeFaltante = parametroImportacion.ValidacionTimeCodeFaltante;
            this.ValidacionTimeCodeFormatoIncorrecto = parametroImportacion.ValidacionTimeCodeFormatoIncorrecto;
            this.ValidacionTimeCodeSecuenciaIncorrecta = parametroImportacion.ValidacionTimeCodeSecuenciaIncorrecta;
        }

        #endregion

        #region Propiedades

        /// <summary>
        /// Id (PK)
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Id del Estudio
        /// </summary>
        public int IdEstudio { get; set; }

        /// <summary>
        /// Habilitado Loop por Segundos
        /// </summary>
        public bool HabilitadoLoopsPorSegundos{ get; set; }

        /// <summary>
        /// Habilitado Loops por Palabras
        /// </summary>
        public bool HabilitadoLoopsPorPalabras { get; set; }

        /// <summary>
        /// Segundos por Loop
        /// </summary>
        public int SegundosPorLoop { get; set; }

        /// <summary>
        /// Palabras por Loop
        /// </summary>
        public int PalabrasPorLoop { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public bool HabilitadoAnotacionActor { get; set; }

        /// <summary>
        /// Anotación Actor
        /// </summary>
        public string AnotacionActor { get; set; }
        
        /// <summary>
        /// 
        /// </summary>
        public bool HabilitadoAnotacionDirector { get; set; }

        /// <summary>
        /// Anotación Director
        /// </summary>
        public string AnotacionDirector { get; set; }

        /// <summary>
        /// Habilitado - TimeCode - Reset de Hora
        /// </summary>
        public bool HabilitadoAnotacionTimeCodeResetHora { get; set; }

        /// <summary>
        /// Anotación en el TimeCode para indicar un reset de hora
        /// </summary>
        public string AnotacionTimeCodeResetHora { get; set; }

        /// <summary>
        /// Validación - TimeCode - Faltante
        /// </summary>
        public bool ValidacionTimeCodeFaltante { get; set; }

        /// <summary>
        /// Validación - TimeCode - Formato incorrecto
        /// </summary>
        public bool ValidacionTimeCodeFormatoIncorrecto { get; set; }
        
        /// <summary>
        /// Validación - TimeCode - Secuencia incorrecta
        /// </summary>
        public bool ValidacionTimeCodeSecuenciaIncorrecta { get; set; }

        /// <summary>
        /// Validación - Diálogos - Fila Vacía
        /// </summary>
        public bool ValidacionFilaVacia { get; set; }

        /// <summary>
        /// Habilitado Traductor
        /// </summary>
        public bool HabilitadoTraductor { get; set; }

        /// <summary>
        /// Habilitado Proyecto
        /// </summary>
        public bool HabilitadoProyecto { get; set; }

        /// <summary>
        /// Habilitado Clave
        /// </summary>
        public bool HabilitadoClave { get; set; }

        /// <summary>
        /// Habilitado Proyecto
        /// </summary>
        public bool HabilitadoEpisodio { get; set; }

        /// <summary>
        /// Habilitado Título Original
        /// </summary>
        public bool HabilitadoTituloOriginal { get; set; }

        /// <summary>
        /// Habilitado Título Traducido
        /// </summary>
        public bool HabilitadoTituloTraducido { get; set; }

        /// <summary>
        /// Habilitado Duración
        /// </summary>
        public bool HabilitadoDuracion { get; set; }

        /// <summary>
        /// Tabla Traductor
        /// </summary>
        public int TablaTraductor { get; set; }

        /// <summary>
        /// Tabla Proyecto
        /// </summary>
        public int TablaProyecto { get; set; }

        /// <summary>
        /// Tabla Clave
        /// </summary>
        public int TablaClave { get; set; }

        /// <summary>
        /// Tabla Proyecto
        /// </summary>
        public int TablaEpisodio { get; set; }

        /// <summary>
        /// Tabla Título Original
        /// </summary>
        public int TablaTituloOriginal { get; set; }

        /// <summary>
        /// Tabla Título Traducido
        /// </summary>
        public int TablaTituloTraducido { get; set; }

        /// <summary>
        /// Tabla Duración
        /// </summary>
        public int TablaDuracion { get; set; }

        /// <summary>
        /// Fila Traductor
        /// </summary>
        public int FilaTraductor { get; set; }

        /// <summary>
        /// Fila Proyecto
        /// </summary>
        public int FilaProyecto { get; set; }

        /// <summary>
        /// Fila Clave
        /// </summary>
        public int FilaClave { get; set; }

        /// <summary>
        /// Fila Proyecto
        /// </summary>
        public int FilaEpisodio { get; set; }

        /// <summary>
        /// Fila Título Original
        /// </summary>
        public int FilaTituloOriginal { get; set; }

        /// <summary>
        /// Fila Título Traducido
        /// </summary>
        public int FilaTituloTraducido { get; set; }

        /// <summary>
        /// Fila Duración
        /// </summary>
        public int FilaDuracion { get; set; }

        /// <summary>
        /// Columna Traductor
        /// </summary>
        public int ColumnaTraductor { get; set; }

        /// <summary>
        /// Columna Proyecto
        /// </summary>
        public int ColumnaProyecto { get; set; }

        /// <summary>
        /// Columna Clave
        /// </summary>
        public int ColumnaClave { get; set; }

        /// <summary>
        /// Columna Proyecto
        /// </summary>
        public int ColumnaEpisodio { get; set; }

        /// <summary>
        /// Columna Título Original
        /// </summary>
        public int ColumnaTituloOriginal { get; set; }

        /// <summary>
        /// Columna Título Traducido
        /// </summary>
        public int ColumnaTituloTraducido { get; set; }

        /// <summary>
        /// Columna Duración
        /// </summary>
        public int ColumnaDuracion { get; set; }

        #endregion
    }
}
